package 传智播客_黑马.java高级.函数式.函数式接口;

public class 概述 {
    /*
    函数式接口在java中是指:有且仅有一个抽象方法的接口(另外可以包含默认方法,静态方法,私有方法
        语法糖:是指使用更加方便,但是原理不变的代码语法

        @FunctionalInterface保证是函数式接口的注释
     */
    @FunctionalInterface
    interface Function{
        //定义一个抽象方法
        public abstract void method();
    }

//    class functionImpl implements Function{
//
//        @Override
//        public void method() {
//            System.out.println("yes");
//        }
//    }

    public static void main(String[] args) {
        //函数式接口的使用:一般作为方法的参数或者返回类型来使用

        //调用show方法,方法的参数是一个接口,可以传递实现类对象
        show(()->{//lambda表达式和匿名内部类不通的,lambda不会生成class文件,节省性能的消耗
            System.out.println("yes");
        });

        show(new Function() {
            @Override
            public void method() {
                System.out.println("2*yes");
            }
        });

    }

    public static void show(Function myInter){
        myInter.method();
    }
}
